1. Field of the Invention
The present invention relates generally to distributed processing and in particular to synchronization using locks in distributed processing.
2. Background Information
A distributed application in a computing environment typically includes multiple cooperating processes which are spread across a group of loosely coupled computing modules (nodes). Each computer in the group has its own address space, runs its own copy of an operating system and runs a number of the application processes. Cooperating application processes on different nodes frequently need to share resources such as data structures, disk arrays and executable programs. However, accesses to these shared resources often have to be synchronized in order to ensure some form of distributed serialization. A conventional way to achieve this synchronization is for applications to use the coordination facilities provided by a distributed lock manager (DLM).
A typical DLM comprises a system to which all the nodes are connected, and that is in charge of granting and releasing locks to the requesting nodes. The DLM contacts the nodes to find an agreement on the granting of the lock. This is necessary to ensure that each node connected to the system agrees on the state of the lock. As such, the system requires a specific process that centrally manages these activities. If the system crashes or becomes unreachable, then the overall process of lock granting/releasing cannot continue. Moreover, a DLM is typically specialized to manage specific types of locks (e.g., locks on rows/tables of a database, locks on shared files, and so on). Such a DLM generally does not allow managing heterogeneous locks of different types.